(function(){
/*	$("#query_module").linkbutton({
	    onClick: queryModule
	});
	$('#add_module').linkbutton({    
	    onClick: addModule
	});
	$('#edit_module').linkbutton({    
	    onClick: editModule
	}); 
	$('#remove_module').linkbutton({    
	    onClick: removeModule
	}); 
	
	$('#expand_module').linkbutton({    
	    onClick: function () {
	    	$('#tree_module').tree("expandAll");
	    }
	});
	$('#collapse_module').linkbutton({    
	    onClick: function () {
	    	$('#tree_module').tree("collapseAll");
	    }
	});
	$('#save_module').linkbutton({    
	    onClick: saveModuleMenu
	});
	$('#saveCon_module').linkbutton({    
	    onClick: saveMenuContents
	});*/
	
	$("#fsysflag_module").combobox({
		url : "systemMaintenance/findSystemInfo",
		valueField:'fsysflag',
		textField:'fname',
		width : 160,
		onLoadSuccess : function(data) {
			if (data.length > 0) {
				$("#fsysflag_module").combobox("select", data[data.length-1].fsysflag);
			}
		},
		onChange: function(newValue,oldValue){
			$("#tree_module").empty();  // 清空菜单项
			queryModule();
		}
	});
	
	var fsysflag = $("#fsysflag_module").combobox("getValue"); 
	$('#dataGrid_module').datagrid({
		url : "systemMaintenance/findModulesBySys",
		toolbar : "#toolbar_module",
		queryParams : {
			fsysflag : fsysflag
		},
		rownumbers : true,
		fit : true,
		fitColumns : true,
		border : false,
		singleSelect : true,
		onClickRow : showMenu,
	    columns:[[
	        {field:'fcode',title:'角色编号',width:160,align:'center'},
	        {field:'fname',title:'角色名称',width:200,align:'center'}
	    ]]
	});
	
	$('#content_module').datagrid({
		toolbar : "#toolbar_content",
		rownumbers : true,
		fit : true,
		fitColumns : true,
		border : false,
	    columns : [[
	    	{field:'fid',checkbox:'true'},
	        {field:'fcontent',title:'菜单权限项',width:120,align:'center'}
	    ]],
	    onLoadError : errorPromt
	});
	
})();

function showMenu(index, row) {
	var fsysflag = $("#fsysflag_module").combobox("getValue");
	
	$("#tree_module").empty();   // 清空菜单项
	$("#content_module tbody").html("");
	// 加载全部菜单列表
	$('#tree_module').tree({
		url : 'systemMaintenance/findMenuListBySysAndModule',
		queryParams : {
			module : row.fcode,
		    fsysflag : fsysflag
		},
		checkbox : true,
		onClick : showMenuContents,
		//onDblClick : showMenuContents,
		onLoadError : errorPromt
	});
}

function checkNode(node) {
	// 点击节点文本名时，实现选中或取消选中效果
	if (node.checkState == "checked") {
		$('#tree_module').tree('uncheck', node.target);
	} else {
		$('#tree_module').tree('check', node.target);
	}
}

function showMenuContents(node) {
	
	var selectedModule = $("#dataGrid_module").datagrid("getSelected");  // 获得选中的权限
	var selectedNode = $("#tree_module").tree("getSelected");   // 获得选中的菜单节点
	
	var moduleCode = selectedModule.fcode;   // 权限编号
	var menuCode = selectedNode.fcode;   // 菜单编号
	
	$('#content_module').datagrid({
		url : "systemMaintenance/findMenuContents",
		queryParams : {
			menuCode : node.fcode
		},
	    columns : [[
	    	{field:'fid',checkbox:'true'},
	        {field:'fcontent',title:'菜单内容项',width:120,align:'center'}
	    ]],
	    onLoadSuccess: function(data) {
	    	$.ajax({
	    		url : "systemMaintenance/findCheckPC",
	    		dataType: 'json',
	    		type: 'get',
	    		data: {
	    			moduleCode : moduleCode,
	    			menuCode : menuCode
	    		},
	    		success : function(data) {
	    			if(data.length > 0) { 
	    				var content = data[0].fcontentright;   // 页面内容权限信息
	    				if(content!=null){
		    				var length = content.length;
		    				for(var i = 0; i < content.length; i++) {
		    					var c = content.charAt(i);
		    					if ("1" == c) {   // 如果内容标识符为1，则选中该行
		    						$("#content_module").datagrid("selectRow", i);
		    					}
		    				}
	    				}
	    			}
	    		},
	    		error : errorPromt
	    	})
	    },
	    onLoadError : errorPromt
	});
}

function queryModule() {
	var fsysflag = $("#fsysflag_module").combobox("getValue");
	$("#dataGrid_module").datagrid("options").queryParams = {fsysflag:fsysflag};
	$("#dataGrid_module").datagrid("reload");
}

function addModule() {
	$("#moduleForm_module").form("clear");
	$('#dialog_module').dialog({
		title: '添加角色',
		closed: false,
		cache: false,
		buttons:[{
			text:'确定',
			handler:confirmAdd
		},{
			text:'取消',
			handler: function() {
				$("#dialog_module").dialog("close");
			}
		}]
	});
}

function confirmAdd() {
	var fsysflag = $("#fsysflag_module").combobox("getValue");
	var moduleNum = $("#number_module").val();
	var moduleName = $("#name_module").val();
	
	if (null == moduleNum || "" == moduleNum) {
		$.messager.alert("警告", "角色编号不能为空！", "info");
		return;
	}
	if (null == moduleName || "" == moduleName) {
		$.messager.alert("警告", "角色名不能为空！", "info");
		return;
	}
	
	var mark = checkModule(moduleNum);   // return标记，用来判断函数是否要中止
	// 当mark为true时，中止函数执行
	if (mark) {
		return;
	}
	
	$.ajax({
		url : "systemMaintenance/checkModuleName",
		dataType:'json',
		type:'post',
		data : {fsysflag:fsysflag},
		success : function(data){
			var count=0;
			for (var i = 0; i < data.length; i++) {
				if (moduleName==data[i].fname) {
					count ++;
				}
			}
			if (count!=0) {
				$.messager.alert("警告", "该角色名称已存在！", "info");
				return;
			}
			$.ajax({
				url : "systemMaintenance/addModule",
				dataType:'json',
				type:'post',
				data:{
					moduleNum : moduleNum,
					moduleName : moduleName,
					fsysflag : fsysflag
				},
				success : function(data) {
					if (data.success == true) {
						$.messager.alert('信息', "添加成功！", 'info');
						$("#dialog_module").dialog("close");
						$("#dataGrid_module").datagrid("reload");
					} 
				},error : errorPromt
			});
		}
	})
}

function editModule() {
	var row = $("#dataGrid_module").datagrid("getSelected");
	if (row == "" || row == null) {
		$.messager.alert("信息","请选中角色信息！","info");
		return;
	}
	// 清除表单中的原有数据
	$("#moduleForm_module").form("clear");
	$("#moduleForm_module").form("load", row);  // 加载表单数据
	
	$('#dialog_module').dialog({
		title: '修改角色',
		closed: false,
		cache: false,
		buttons:[{
			text:'确定',
			handler: confirmEdit
		},{
			text:'取消',
			handler:function(){
				$("#dialog_module").dialog("close");
			}
		}]
	});
}

function confirmEdit() {
	var fsysflag = $("#fsysflag_module").combobox("getValue");
	var row = $("#dataGrid_module").datagrid("getSelected");
	var id = row.fid;
	
	var moduleNum = $("#number_module").val();
	var moduleName = $("#name_module").val();
	
    var checkNodes = $("#tree_module").tree("getChecked", ['checked','indeterminate']);  // 获得选中、未明确选中的菜单项
    var nodes = "";
    for (var i = 0; i < checkNodes.length; i++) {
    	if (nodes == "") {
    		nodes += checkNodes[i].fcode;
    	} else {
    		nodes += "," + checkNodes[i].fcode;
    	}
    }
	
	if (null == moduleNum || "" == moduleNum) {
		$.messager.alert("警告", "角色编号不能为空！", "info");
		return;
	}
	if (null == moduleName || "" == moduleName) {
		$.messager.alert("警告", "角色名称不能为空！", "info");
		return;
	}
	
	var mark = checkModule(moduleNum, id);   // return标记，用来判断函数是否要中止
	// 当mark为true时，中止函数执行
	if (mark) {
		return;
	}
	
	$.ajax({
		url : "systemMaintenance/checkModuleName",
		dataType:'json',
		type:'post',
		data : {fsysflag:fsysflag,moduleName : moduleName},
		success : function(data){
			var count=0;
			for (var i = 0; i < data.length; i++) {
				if (moduleName==data[i].fname) {
					count ++;
				}
			}
			if (count!=0) {
				$.messager.alert("警告", "该角色名称已存在！", "info");
				return;
			}
			$.ajax({
				url : "systemMaintenance/updateModule",
				dataType:'json',
				type:'post',
				data:{
					id : id,
					moduleNum : moduleNum,
					moduleName : moduleName,
					nodes : nodes,
					fsysflag : fsysflag
				},
				success : function(data) {
					if (data.success == true) {
						$.messager.alert('信息', "修改成功！", 'info');
						$("#dialog_module").dialog("close");
						$("#dataGrid_module").datagrid("reload");
					} 
				},error : errorPromt
			});
		}
	})
}
function removeModule() {
	var rows = $("#dataGrid_module").datagrid("getSelected");
	if (rows == null || "" == rows) {
		$.messager.alert("信息","请选中角色信息！","info");
		return;
	}
	
	$.messager.confirm('信息', '是否要删除角色信息?', function(r){
		if (r){//点击确定执行事件
			
			$.ajax({
				url : "systemMaintenance/deleteModule",
				dataType:'json',
				type:'post',
				data:{
					idStr : rows.fid
				},
				success : function(data) {
					if (data.success == true) {
						$("#tree_module").empty();
						$.messager.alert('信息', "删除成功！", 'info');
						$("#dataGrid_module").datagrid("reload");
					} 
				},error : errorPromt
			});
		} 
	});
}

//展开全部
function expandModule(){
	$('#tree_module').tree("expandAll");
}
//收起全部
function collapseModule(){
	$('#tree_module').tree("collapseAll");
}
 



// 保存权限菜单
function saveModuleMenu() {
	var fsysflag = $("#fsysflag_module").combobox("getValue");  // 系统编号
	var row = $("#dataGrid_module").datagrid("getSelected");
    var checkNodes = $("#tree_module").tree("getChecked", ['checked','indeterminate']);  // 获得选中、未明确选中的菜单项
    var module = row.fcode;
    
    var nodes = "";
    for (var i = 0; i < checkNodes.length; i++) {
    	if (nodes == "") {
    		nodes += checkNodes[i].fcode;
    	} else {
    		nodes += "," + checkNodes[i].fcode;
    	}
    }
    
    $.ajax({
		url : "systemMaintenance/saveModuleMenu",
		dataType:'json',
		type:'post',
		data:{
			module : module,
			nodes : nodes,
			fsysflag : fsysflag
		},
		success : function(data) {
			if (data.success == true) {
				$.messager.alert('信息', "保存成功！", 'info');
			} 
		},error : errorPromt
	});
}

function saveMenuContents() {
	var selectedModule = $("#dataGrid_module").datagrid("getSelected");  // 获得选中的权限
	var selectedNode = $("#tree_module").tree("getSelected");   // 获得选中的菜单节点
	var rows = $("#content_module").datagrid("getRows");   // 获得所有行
	var checkRows = $("#content_module").datagrid("getChecked");   // 获得选中行
	
	var contentCode = "";   // 保存页面内容0、1码   选中为1， 不选为0
	
    for (var i = 0; i < rows.length; i++) {
    	var rowIndex = $("#content_module").datagrid("getRowIndex", rows[i]);  // 获得当前行的行号
    	
		for (var j = 0; j < checkRows.length; j++) {
			var crowIndex = $("#content_module").datagrid("getRowIndex", checkRows[j]);   // 获得选中行的行号
			if (rowIndex == crowIndex) { // 若行号相等，表示当前行被选中
				contentCode += "1";
			}
		}
		
		// 当前行没有被选中，加0 （长度等于i表明内循环中没有加1）
		if (contentCode.length == i) contentCode += "0";
	}
	
	var moduleCode = selectedModule.fcode;   // 权限编号
	var menuCode = selectedNode.fcode;   // 菜单编号
	
	$.ajax({
		url: "systemMaintenance/saveMenuContents",
		cache : false,
		dataType: "json",
		type: "post",
		data: {
			moduleCode: moduleCode,
			menuCode: menuCode,
			contentCode : contentCode
		},
		success: function(data) {
			if (data.success == true) {
				$.messager.alert('信息', "保存成功！", 'info');
			} else {
				$.messager.alert('信息', "请先保存该菜单！", 'info');
			}
		},
		error: errorPromt
	})
	
}

// 校验权限信息
function checkModule(moduleNum, id) {
    var mark = false;  // return标记，用来判断调用该函数的函数是否要中止
	
	// 校验要新增权限的角色编号是否已存在
	$.ajax({
		url : "systemMaintenance/getModules",
		async : false,
		dataType: 'json',
		type: 'get',
		data: {id : id},
		success : function(data) {
            for (var i = 0; i < data.length; i++) {
            	// 判断权限编号是否已存在
				if (data[i].fcode == moduleNum) {
					$.messager.alert("警告", "该角色编号已存在！", "info");
					mark = true;  // 权限编号冲突时，将mark置为true，以使函数正确中止
					return;
				}
			}
		},error : errorPromt
	});
	return mark;
}